import { isBrowser, isServer } from "../is/runtime";

/**
 * 对一个字符串进行 Base64 编码
 * @param str 一个字符串
 * @returns 进行 Base64 编码后的字符串
 * @since v0.0.17
 */
export function strEncodeBase64(str:string):string {
    if (isBrowser()) {
      return window.btoa(str);
    } else if (isServer()) {
      return Buffer.from(str).toString('base64');
    }else{
        throw Error('An unsupported runtime environment.')
    }
  }
  
  /**
   * 将一个使用 Base64 编码后的字符串还原为原字符串
   * @param str 一个字符串
   * @returns Base64 解码 后的字符串
   * @since v0.0.17
   */
  export function strBase64Decode(str:string):string {
    if (isBrowser()) {
      return window.atob(str);
    } else if (isServer()) {
      return Buffer.from(str, 'base64').toString('utf8');
    }else{
        throw Error('An unsupported runtime environment.')
    }
  }
  